package com.lzq.mq.common.coder;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * tcp数据包
 */
@Data
@AllArgsConstructor
public class TcpMsg {

    /**
     * 头长度
     * 用于判断是否可读
     */
    public static final short HEADER_LENGTH = 10;

    /**
     * 魔数
     */
    public static final short magic = 0x1234;

    /**
     * 请求体含义(用于指定请求类型)
     */
    private int code;

    /**
     * 消息体长度
     */
    private int len;

    /**
     * 消息体
     */
    private byte[] body;

    /**
     * 构建TcpMsg对象
     * @param code 请求类型
     * @param body 消息体
     */
    public TcpMsg(int code, byte[] body) {
        this.code = code;
        this.body = body;
        this.len = body == null ? 0 : body.length;
    }
}
